﻿// 是呆子吗  NERDS.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
/*
https://algospot.com/judge/problem/read/NERDS

Algospot.com的年度编程比赛即将举行，报名人数众多（10,000+！）。由于我们只有5位评委，无法处理这么多队伍。因此，我们决定只接受“真正的书呆子”参加比赛。

JongMan提出了一个理论，即一个人的书呆指数是否取决于他们的鞋码和每分钟打字速度的线性组合。在他的理论中，书呆指数

F = A *（鞋码）+ B *（每分钟打字速度）
能够确定一个人是否是书呆子。分数越高，表示这个人越书呆。我们打算设定一个阈值T；我们只接受分数等于或高于T的人员。

然而，这个理论是否有效？为了弄清楚，我们从一些我们熟悉的人那里获取了数据。我们知道他们的鞋码和打字速度，并且知道他们是否是书呆子。是否存在一组参数A、B和T可以成功区分书呆子和其他人？编写一个程序来确认这一点。

请注意，A、B和T可以是任意实数。

输入：
输入文件的第一行将包含测试用例的数量C（C = 50）。每个测试用例以n开头（6 <= n <= 5,000），表示我们熟悉的人的数量。接下来n行，每行包含三个非负整数。第一个整数为1表示该人是书呆子，为0表示不是。第二个数和第三个数表示该人的鞋码和每分钟打字速度。这两个数将在[0, 10000]范围内。

每组人员中至少有三个人 - 书呆子和非书呆子各有三个。而且，对于每个组别，由他们的鞋码和打字速度组成的两个向量将线性无关。也就是说，对于一组人，我们形成一个向量[shoe[0]、shoe[1]、shoe[2]，...]，还有另一个向量[speed[0]、speed[1]、speed[2]，...]，它们是线性无关的。

输出：
对于每个测试用例，输出一行。如果存在一个或多个满足给定数据的参数集合，则输出"THEORY HOLDS"。否则，输出"THEORY IS INVALID"。详见示例输出。

样例输入：
3
8
1 2 3
1 3 4
1 4 5
1 2 5
0 4 1
0 5 5
0 3 3
0 4 4
6
1 1 5
1 5 1
1 1 1
0 2 2
0 4 1
0 1 4
6
1 10 10
0 10 10
1 5 15
1 5 5
0 15 15
0 15 5

样例输出：
THEORY HOLDS
THEORY IS INVALID
THEORY IS INVALID

注：
案例1：有无限多个解决方案 - 例如，设A = -8，B = 10。那么八个人的书呆指数分别为14、16、18、34、-22、10、6、8。我们设定T = 12，每个人都被正确分类。
案例2：在这种情况下，没有能够正确分类书呆子的解决方案。
案例3：有两个具有相同数据但一个是书呆子，另一个不是。因此，无法区分它们。
*/
int main()
{
    std::cout << "Hello World!\n";
}

 